package com.rzjm.api.service;

import com.rzjm.api.entity.DeviceRange;
import com.rzjm.api.entity.DeviceRangeRecord;
import com.rzjm.api.entity.User;

import java.util.List;
import java.util.Map;

/**
 *  添加单挑记录
 * @author zhouwei
 * @email
 * @date
 */
public interface DeviceRangeRecordService extends BaseService<DeviceRangeRecord> {

    /**
     *  添加单条 数据
     * @param deviceNum
     * @param data
     * @param orderNum
     * @return
     */
    int addSingleRecord(String deviceNum, String[] dataArray,  String data, String orderNum);

    /**
     *  添加单条 数据  油罐算法
     * @param deviceNum
     * @param data
     * @param orderNum
     * @return
     */
    int addSingleRecordOil(String deviceNum, String data, String orderNum);


    /**
     *  动态添加表
     * @return
     */
    String addNowMonthRecordTable();

    /**
     *  添加一次性90条数据 数据
     * @param deviceNum
     * @param data
     * @param orderNum
     * @return
     */
    int addMultiplyRecord(String deviceNum, String[] dataArray,  String data, String orderNum);


    /**
     *  根据记录编号 获取当前数据下最长的
     * @param deviceNum
     * @param dataCode
     * @return
     */
    DeviceRangeRecord getMinBevelByDeviceId(String deviceNum,String dataCode, double maxAngle, String tableName);


    /**
     *  根据记录编号 获取当前数据下最长的
     * @param deviceNum
     * @param dataCode
     * @return
     */
    DeviceRangeRecord getMaxBevelByDeviceId(String deviceNum,String dataCode);


    /**
     *  根据记录编号 获取当前数据下最长的
     * @param deviceNum
     * @param dataCode
     * @return
     */
    List<DeviceRangeRecord> getMaxHeightRecordByDeviceId(String deviceNum, String dataCode,double maxAngle,int limitCount);

    /**
     *  根据记录编号 获取当前数据下最长的
     * @param deviceNum
     * @param dataCode
     * @return
     */
    DeviceRangeRecord getMaxHeightByDeviceId(String deviceNum, String dataCode, String tableName);

    /**
     *  根据记录编号 获取当前数据下最长的
     * @param deviceNum
     * @param dataCode
     * @param isFirst  0 - 最后的测试值  1 - 最开始的测量值
     * @return
     */
    DeviceRangeRecord getLastRecordByDeviceId(String deviceNum,String dataCode, int isFirst, String tableName);

    /**
     *  获取当前操作 记录的条数
     * @param deviceNum
     * @param dataCode
     * @return
     */
    long getRecordCount(String deviceNum,String dataCode);


    void testData(DeviceRangeRecord maxLength, DeviceRange deviceRange, String dataCode);


    Map<String,Object> getChartDataByDeviceRangeByDataCode(User user, DeviceRange deviceRange,String dataCode);

    Map<String,Object> getChartDataByDeviceRange(User user, DeviceRange deviceRange);

}
